Hard disk drives (“disks”) are common data storage devices used in conjunction with computers. Most disks have multiple circular magnetic platters which rotate on a common spindle to allow heads mounted on a common actuator to read and write data from and to both the bottom and top magnetic recording surfaces of each platter. Disks eventually suffer enough wear and tear through prolonged use that they become unreliable as a data storage medium. Typically, when a disk fails it enters a fault mode and ceases to allow access to the data that was written or stored on it. A failed disk is typically replaced with a new disk and the unaccessible data that was written on the failed disk is restored from a backup of the data and written onto the replacement disk. Restoring data from a backup can be a lengthy process during which services provided by the computer that depend on the data are usually unavailable.
One technique for guarding against data loss from a disk failure is to use a striped parity disk array (“SPDA”). An SPDA comprises several disks across which the data is striped and on which parity information is stored. Striping refers to a body of data which is broken up into smaller units and written to multiple disks. Parity information is generated from the data and allows rebuilding of the body of data if a disk within the SPDA fails. Some common well-known implementations of SPDAs are disk arrays using standard Redundant Array of Independent (or Inexpensive) Disks (RAID) levels 3-6. A single set of parity information is generally referred to as single parity and two sets of parity information is generally referred to as dual parity.
An SPDA generally requires the storage equivalent of a whole disk to be devoted to storing each set of parity information. A single parity SPDA with N disks would therefore have the storage equivalent of N-1 disks available for data storage, and a dual parity SPDA with N disks would have the storage equivalent of N-2 disks available for data storage. The parity information may be entirely on one disk (such as RAID levels 3 or 4), two disks or striped across all of the disks in the SPDA (such as RAID level 5). If one of the disks in an SPDA fails, the SPDA can continue to operate to allow access to the data. Typically, a failed disk in an SPDA is replaced with a spare disk and then the spare disk is written with data rebuilt from the data and parity information written on the other disks in the SPDA.
When a disk containing data in an SPDA fails, the SPDA is considered to be operating in degraded mode. Performance of an SPDA is adversely affected when the SPDA is in degraded mode due to the need to process parity information with available data in order to rebuild the missing data from the failed disk. Data is usually unrecoverable from a single parity SPDA if a subsequent disk fails while the SPDA is in degraded mode because the SPDA no longer has the redundancy that the parity information provided. It is therefore desirable to minimize the amount of time an SPDA spends in degraded mode.
Usually, an SPDA controller manages the operation of the SPDA and the disks within the SPDA and presents the SPDA to a host computer as a single storage container. An SPDA controller, such as a RAID controller that supports RAID levels 3-5, may be implemented in either software or hardware. SPDA controllers typically allow for the use of a hot spare disk (“hot spare”). A hot spare is an extra disk connected to the SPDA controller that can be used by the SPDA controller to automatically replace a failed disk in the SPDA, reducing the amount of time the SPDA spends operating in degraded mode. When a disk in the SPDA fails, the SPDA controller will typically remove the failed disk from the SPDA and add the hot spare to the SPDA thus making the hot spare a member disk of the array. The SPDA controller then rebuilds the data that was on the failed disk by using the data and parity information on the other disks in the SPDA, and writes this data to the extra disk which is now a member of the SPDA.
The continued evolution of disk storage technology has increased the storage capacity of new disks. As the storage capacity of new disks has increased so has the storage capacity of typical SPDAs. The increased storage capacity of typical SPDAs has also increased the time it takes to rebuild the typical SPDA. Longer rebuild times have resulted in greater risks or incidences of data loss due to second disk failures while the SPDAs are operating in degraded mode.